# 同步版 database.py（无任何 async 关键词）
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base  # 同步基类
from sqlalchemy.orm import sessionmaker
from common.config import settings

# 1. 同步引擎（用 pymysql 驱动，URL 格式改同步）
SQLALCHEMY_DATABASE_URL = f"mysql+pymysql://{settings.mysql_user}:{settings.mysql_password}@{settings.mysql_host}:{settings.mysql_port}/{settings.mysql_db_user}"
engine = create_engine(
    SQLALCHEMY_DATABASE_URL,
    pool_pre_ping=True  # 可选：连接前检测，避免失效连接
)

# 2. 同步 Session（无 Async）
SessionLocal = sessionmaker(
    autocommit=False,
    autoflush=False,
    bind=engine
)

# 3. 模型基类（同步版，解决之前的 Base 导入问题）
Base = declarative_base()

# 4. 同步依赖函数（无 async/await）
def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()